脚本作者Lisztdreams
联系方式：5Mods账号ID：Lisztdreams
                  QQ邮箱757946163@qq.com
                  哔哩哔哩uid：452301387
脚本更新时间：2026.04.22
(未经过作者同意 禁止修改以及打包传播和售卖)

------------------脚本基本介绍---------------------
WaterTemp - 真实引擎水温模拟脚本

让 GTA V 的驾驶体验多一层真实与策略性。

这是一个完全独立的 .cs 脚本，为游戏中的所有载具引入了动态、真实的引擎水温模拟系统。你的驾驶习惯、环境天气、车速都将直接影响水温，过高的温度会导致引擎损坏甚至报废。


【必需插件】

本脚本基于 ScriptHookVDotNet 开发，运行前请确保已正确安装以下依赖：

- ScriptHookV (http://www.dev-c.com/gta5/scripthookv)
- dinput8.dll (随 ScriptHookV 一同提供)
- ScriptHookVDotNet v3.7.0-nightly.78 或更高版本 (https://github.com/scripthookvdotnet/scripthookvdotnet-nightly/releases)
- .NET Framework 4.8 或更高版本

（注：DashHook 为可选增强插件，非必需）


【独立运行功能完善，不依赖 DashHook 也足够硬核】

即使你没有安装 DashHook，WaterTemp 依旧是一个功能完备的独立脚本。它拥有自己的屏幕 HUD 温度条和温度数值显示，给予玩家清晰的视觉警示。这意味着无需任何外部插件，你就能获得完整的反馈闭环——从水温实时显示到高温视觉警告，再到最终的引擎报废惩罚。

当然，如果你同时安装了 IkT 的 DashHook 脚本，WaterTemp 还能更进一步，将水温数据同步写入游戏车辆仪表盘的水温指针以及发动机高温时的故障灯长亮，实现 HUD 与物理指针的双重显示一致性。


【水温上涨逻辑（引擎启动时）】

当车辆引擎启动后，水温会根据以下真实物理逻辑逐步上升：

1. 基础温升速率 (BaseRiseRate)：引擎怠速时固有的发热速度。
2. 转速加成 (RPMRiseMultiplier)：你踩的油门越深、转速越高，引擎发热越快。
3. 环境与天气影响：晴朗的白天升温更快，雨雪、大雾或夜晚天气会降低升温速度。
4. 温度非线性因子 (BaseRiseMinFactor)：当水温处于低温区（0-90°C）时升温相对平缓；进入高温区（110°C 以上）后，热堆积效应加剧，水温上升会越来越快。


【水温下降/散热逻辑/外界因素】

散热主要通过三个途径实现，三者可叠加：

- 自然冷却 (BaseFallRate)：引擎熄火后，水温会根据当前温度与环境温度的差值缓慢下降，最终回归至环境温度水平。
- 行驶撞风冷却 (MovementCoolingBase)：这是最有效的散热方式。车速越快，散热越强（最高风速效果受 MaxSpeedForCooling 参数控制）。高速巡航是抑制水温过高的关键策略。
-节温器(thermostat)：这是模拟现实车辆上的节温器装置 自动控制冷却液在发动机和散热器（水箱）之间循环的路径和流量，确保发动机始终在最佳工作温度（约85-100°C）下稳定运行


【高温后果与惩罚机制】

水温超过 150°C 将触发严重机械故障，让飙车不再是毫无代价的：

- 引擎报废 (ForceEngineDeadAtMax)：水温到达 150°C 上限时，引擎将立即损坏并强制熄火，且无法再次启动。
- 高温耐久度磨损：水温超过 111°C 后，引擎健康值（Engine Health）会随着水温升高而持续下降，直到完全损坏。
- 引擎故障灯提示：水温达到约 120°C 时，车辆仪表盘的引擎故障灯将亮起，提醒你立即减速散热或停车冷却。
- 修复重置：只有将车辆开进改车王修复或使用修改器修复引擎后，水温才会重置回环境温度，车辆恢复正常使用。


【与 DashHook 的深度互通（可选增强，测试 DashHook 版本为 1.01）】

如果你安装了 IkT 的 DashHook 脚本（https://www.gta5-mods.com/tools/dashhook），WaterTemp 将自动识别并启用高级互通功能：

- 仪表盘同步：脚本会将计算出的水温归一化数值写入 DashHook 的内存数据结构。
- 指针指向一致：车辆仪表盘上的水温指针将直接由 WaterTemp 脚本驱动。指针指向的位置与屏幕 HUD 显示的温度百分比完全一致。
- 仪表盘引擎故障灯长亮：当车辆的水温过高时 会触发仪表盘上的引擎故障灯长亮
- 支持每车 Pivot 校准：在 WaterTemp.ini 中可以为特定车辆（例如某些指针偏冷的 MOD 车）单独设置 PivotTemp 和 PivotNormalized，完美匹配不同车型的仪表盘指针逻辑。


【其他值得关注的细节】

- 每辆车独立跟踪：脚本会记录最近驾驶过的多辆汽车的状态（默认 3 辆），可通过自定义修改最大值，切换车辆时水温数据保留。
- 高度可配置的 INI 文件：首次运行自动生成，你可以调整 HUD 位置/颜色/大小、温升速率、散热速率、按键重载（默认 F5）、环境过渡速度等一切参数。
- 每车型独立微调：在 INI 中通过 [Vehicle:车型名称或0xHASH] 段落，可以为特定车辆单独设定更激进或更温和的升温逻辑。
- 调试模式：DebugMode=1 时，上车会弹出车辆的具体键名和哈希值，方便你为特定车辆编写自定义配置。


【安装与使用】

1. 将 WaterTemp.cs 放入你的 scripts 文件夹。
2. 启动游戏，脚本将自动生成 WaterTemp.ini 配置文件。
3. （可选）安装 IkT 的 DashHook 以获得仪表盘指针同步体验。
4. 按 F5 可随时在游戏中热重载配置文件，无需重启游戏。

更新内容

v2.6
新增：节温器损坏机制

现实世界中，节温器是控制冷却液循环路径的关键部件，它能帮助发动机快速升温并维持最佳工作温度（约85-100°C）。但在v2.6的新版本中，节温器并非永远可靠——当车辆因撞击、托底、坠落、爆炸冲击或长期高强度越野而导致节温器卡死或彻底失效。

失效表现：节温器失效后，冷却系统的大循环被阻断，散热效率大幅降低。此时即使车辆低速行驶或怠速，水温也会以极快速度上升，轻易突破引擎正常工作温度范围并冲向极限。

后果：一旦水温失控，发动机将迅速过热，引擎健康值持续下降，直至完全损坏并强制熄火。仪表盘上的引擎故障灯也会在失效后常亮，提醒驾驶员立即靠边停车熄火。

恢复方式：只有将车辆开进改车王维修或通过修改器彻底修复载具后，节温器才会自动恢复工作，冷却系统恢复正常，水温回归环境温度。

这一机制让驾驶过程中的每一次剧烈碰撞、飞坡落地甚至是警匪追逐中的越野路段都变得更具策略性——你不仅要关注当前水温，还得小心保护引擎免受外部冲击，否则一个小小的撞击就可能让你的节温器当场报废，水温表瞬间失控。

------------------脚本配置文件功能及注释---------------------

[General]
MaxTracked（跟踪的车辆条目最大数量 脚本会按最早创建时间移除旧条目以保持最多此数量 增大可同时跟踪更多车辆但会占用更多内存/CPU 减小可降低开销 建议 1–20 根据你常跑的车辆数量调整）
TickIntervalMs（控制脚本每帧/每次更新的频率 较小值更实时但更耗CPU 较大值节省性能但响应延迟 建议1–50）
HeavyUpdateMs（“重负载”更新间隔 单位毫秒 World.GetAllVehicles和对所有tracked条目的温度更新等耗时操作仅在每隔此时间触发一次 增大可显著降低CPU负载 但会降低跟踪/更新精度 建议 100–1000 根据性能调整）
DebugMode（调试/开发者模式开关 0=关闭（默认）不显示加载/重载/错误提示以保持清爽界面；1=开启 显示脚本加载/INI重新加载/调试错误提示以及载具十六进制哈希值以及载具模型名称等通知 便于调试与校准）
ReloadHotkey（重新加载INI的热键代码（整数）使用System.Windows.Forms.Keys枚举的数值 例如116=F5 修改后按该键触发）
PivotTemp（全局映射基准温度（单位°C）用于把脚本内部的0–150°C映射到DashHook脚本的0–1 归一化值时做为一个基点来校准表盘指针位置 值必须在0-150区间）
PivotNormalized（全局映射基准对应的归一化位置（0-1）。表示当温度为PivotTemp时 仪表指针应该指向 0-1 值）

[Rates]
BaseRiseRate（发动机运转时的基础升温速率系数 增大该值会让发动机在怠速/低负载下也更快升温 建议按体验微调 通常0.1–10）
BaseFallRate（发动机熄火或未运行时的自然冷却速率系数 增大会让车辆更快冷却 通常0.1–5）
RPMRiseMultiplier（基于发动机转速的附加升温乘子 增大使高转速更容易升温 可用于模拟高转速下发动机更热）
MovementCoolingBase（移动冷却基数 增大会让高速时冷却更明显）
MaxSpeedForCooling（风冷效果最大速度阈值 单位为 m/s（默认 41.67 ≈ 150 km/h）代表载具速度达到150km/h 达到最大冷却效果 超过150km/h也不会在提供额外冷却效果 模拟汽车在超高速驾驶情况下的风冷气流闭塞现象）
BaseRiseMinFactor（模拟现实汽车恒温器打开后的热平衡状态降温力度 主要影响在90°C-110°C区间 数值越小 效果越明显）

[HUD]
PosX（HUD水温条中心的屏幕X坐标 相对0-1 0=屏幕左边 1=右边）
PosY （HUD水温条中心的屏幕Y坐标 相对 0-1 0=屏幕上方 1=下方）
Width（HUD水温条宽度（相对屏幕宽度））
Height（HUD水温条高度（相对屏幕高度））
BackgroundAlpha（HUD背景透明度（0-1）0=完全透明 1=完全不透明）
BorderPadFactor（HUD背景与进度条之间的边缘填充 用于绘制背景边距 增大会让背景显得更大于实际进度条）

[Text]
TextPosX（文本显示的屏幕X坐标（相对0-1））
TextPosY（文本显示的屏幕Y坐标（相对0-1））
TextScale（文本缩放系数 较大值文本更大 ）
TextR（文本颜色红通道（0–255））
TextG（文本颜色绿通道（0–255））
TextB（文本颜色蓝通道（0–255））
TextA（文本透明度（0–255）255=不透明）
TextUpdateIntervalSeconds（文本更新的最小间隔 单位秒 用于降低文本渲染频率 推荐 0.01–0.2 越小越频繁更新且更实时但会更耗性能）


[Vehicle:0xXXXXXXXX]（自定义载具水温参数 模拟某些车型更容易发热或更耐热 各项作用与[Rates]一致 由载具十六进制哈希值作为根据 进行自定义数据设置 如果不知道车型的哈希值 可设置DebugMode=1 刷新配置文件后 重新进入载具即可通过游戏内弹窗查看）
BaseRiseRate
MovementCoolingBase
MaxSpeedForCooling
BaseRiseMinFactor
PivotTemp（该车型特定的PivotTemp 用于局部校准仪表刻度 当驾驶此车型并且有此自定义参数时 优先使用该设置）
PivotNormalized（该车型特定的PivotNormalized 用于局部校准仪表刻度 当驾驶此车型并且有此自定义参数时 优先使用该设置）

自定义载具例子
[Vehicle:0x360A438E]
BaseRiseRate=1
MovementCoolingBase=0.125
MaxSpeedForCooling=41.67
BaseRiseMinFactor=0.05
PivotTemp=90.0
PivotNormalized=0.5